const fs = require('fs');

// 读取数据
const data = JSON.parse(fs.readFileSync('data/tables.json', 'utf8'));
const devices = data.devices || data; // 兼容两种格式
const baseParamTables = new Set();
const namingTables = new Set();
const positionTables = new Set();

// 分析所有设备引用的参数表
devices.forEach(device => {
  if (device.base_params_table_id && device.base_params_table_id.trim() !== '') {
    baseParamTables.add(device.base_params_table_id.trim());
  }
  if (device.naming_table_id && device.naming_table_id.trim() !== '') {
    namingTables.add(device.naming_table_id.trim());
  }
  if (device.position_table_id && device.position_table_id.trim() !== '') {
    positionTables.add(device.position_table_id.trim());
  }
});

console.log('=== 基础参数表 (base_params_table_id) ===');
[...baseParamTables].sort().forEach(table => console.log(table));

console.log('\n=== 命名参数表 (naming_table_id) ===');
[...namingTables].sort().forEach(table => console.log(table));

console.log('\n=== 位置参数表 (position_table_id) ===');
[...positionTables].sort().forEach(table => console.log(table));

console.log('\n=== 统计信息 ===');
console.log('基础参数表总数:', baseParamTables.size);
console.log('命名参数表总数:', namingTables.size);
console.log('位置参数表总数:', positionTables.size);

// 按专业分组分析
const specialtyTables = {};
devices.forEach(device => {
  const specialty = device.specialty;
  if (!specialtyTables[specialty]) {
    specialtyTables[specialty] = {
      baseTables: new Set(),
      namingTables: new Set(),
      positionTables: new Set()
    };
  }
  
  if (device.base_params_table_id && device.base_params_table_id.trim() !== '') {
    specialtyTables[specialty].baseTables.add(device.base_params_table_id.trim());
  }
  if (device.naming_table_id && device.naming_table_id.trim() !== '') {
    specialtyTables[specialty].namingTables.add(device.naming_table_id.trim());
  }
  if (device.position_table_id && device.position_table_id.trim() !== '') {
    specialtyTables[specialty].positionTables.add(device.position_table_id.trim());
  }
});

console.log('\n=== 按专业分组的参数表 ===');
Object.entries(specialtyTables).forEach(([specialty, tables]) => {
  console.log(`\n${specialty}:`);
  console.log('  基础参数表:', [...tables.baseTables].sort());
  console.log('  命名参数表:', [...tables.namingTables].sort());
  console.log('  位置参数表:', [...tables.positionTables].sort());
}); 